/*global Qiniu */
/*global plupload */
/*global FileProgress */
/*global hljs */
function getCookieByString(cookieName) {
    var start = document.cookie.indexOf(cookieName + '=');
    if (start == -1) return false;
    start = start + cookieName.length + 1;
    var end = document.cookie.indexOf(';', start);
    if (end == -1) end = document.cookie.length;
    return document.cookie.substring(start, end);
}

if (uploadConfig.saveType == "oss" || uploadConfig.saveType == "upyun" || uploadConfig.saveType == "s3") {
    ChunkSize = "0";
} else {
    ChunkSize = "4mb";
}
uploader = Qiniu.uploader({
    runtimes: 'html5,flash,html4',
    browse_button: 'pickfiles',
    container: 'container',
    drop_element: 'container',
    max_file_size: uploadConfig.maxSize,
    flash_swf_url: '/bower_components/plupload/js/Moxie.swf',
    dragdrop: true,
    chunk_size: ChunkSize,
    filters: {
        mime_types: uploadConfig.allowedType,
    },
    multi_selection: !(moxie.core.utils.Env.OS.toLowerCase() === "ios"),
    uptoken_url: "/Upload/Token",
    domain: $('#domain').val(),
    get_new_uptoken: true,
    auto_start: true,
    log_level: 5,
    init: {
        'FilesAdded': function (up, files) {
            $.cookie('path', decodeURI(getCookieByString("path_tmp")));
        },
        'UploadComplete': function (up, file) {
            getMemory();
        },
    }
});

$('#container').on(
    'dragenter',
    function (e) {
        e.preventDefault();
        $('#container').addClass('draging');
        e.stopPropagation();
    }
).on('drop', function (e) {
    e.preventDefault();
    $('#container').removeClass('draging');
    e.stopPropagation();
}).on('dragleave', function (e) {
    e.preventDefault();
    $('#container').removeClass('draging');
    e.stopPropagation();
}).on('dragover', function (e) {
    e.preventDefault();
    $('#container').addClass('draging');
    e.stopPropagation();
});



$('#show_code').on('click', function () {
    $('#myModal-code').modal();
    $('pre code').each(function (i, e) {
        hljs.highlightBlock(e);
    });
});


$('body').on('click', 'table button.btn', function () {
    $(this).parents('tr').next().toggle();
});


var getRotate = function (url) {
    if (!url) {
        return 0;
    }
    var arr = url.split('/');
    for (var i = 0, len = arr.length; i < len; i++) {
        if (arr[i] === 'rotate') {
            return parseInt(arr[i + 1], 10);
        }
    }
    return 0;
};

$('#myModal-img .modal-body-footer').find('a').on('click', function () {
    var img = $('#myModal-img').find('.modal-body img');
    var key = img.data('key');
    var oldUrl = img.attr('src');
    var originHeight = parseInt(img.data('h'), 10);
    var fopArr = [];
    var rotate = getRotate(oldUrl);
    if (!$(this).hasClass('no-disable-click')) {
        $(this).addClass('disabled').siblings().removeClass('disabled');
        if ($(this).data('imagemogr') !== 'no-rotate') {
            fopArr.push({
                'fop': 'imageMogr2',
                'auto-orient': true,
                'strip': true,
                'rotate': rotate,
                'format': 'png'
            });
        }
    } else {
        $(this).siblings().removeClass('disabled');
        var imageMogr = $(this).data('imagemogr');
        if (imageMogr === 'left') {
            rotate = rotate - 90 < 0 ? rotate + 270 : rotate - 90;
        } else if (imageMogr === 'right') {
            rotate = rotate + 90 > 360 ? rotate - 270 : rotate + 90;
        }
        fopArr.push({
            'fop': 'imageMogr2',
            'auto-orient': true,
            'strip': true,
            'rotate': rotate,
            'format': 'png'
        });
    }

    $('#myModal-img .modal-body-footer').find('a.disabled').each(function () {

        var watermark = $(this).data('watermark');
        var imageView = $(this).data('imageview');
        var imageMogr = $(this).data('imagemogr');

        if (watermark) {
            fopArr.push({
                fop: 'watermark',
                mode: 1,
                image: 'http://www.b1.qiniudn.com/images/logo-2.png',
                dissolve: 100,
                gravity: watermark,
                dx: 100,
                dy: 100
            });
        }

        if (imageView) {
            var height;
            switch (imageView) {
                case 'large':
                    height = originHeight;
                    break;
                case 'middle':
                    height = originHeight * 0.5;
                    break;
                case 'small':
                    height = originHeight * 0.1;
                    break;
                default:
                    height = originHeight;
                    break;
            }
            fopArr.push({
                fop: 'imageView2',
                mode: 3,
                h: parseInt(height, 10),
                q: 100,
                format: 'png'
            });
        }

        if (imageMogr === 'no-rotate') {
            fopArr.push({
                'fop': 'imageMogr2',
                'auto-orient': true,
                'strip': true,
                'rotate': 0,
                'format': 'png'
            });
        }
    });



    var newUrl = Qiniu.pipeline(fopArr, key);

    var newImg = new Image();
    img.attr('src', 'images/loading.gif');
    newImg.onload = function () {
        img.attr('src', newUrl);
        img.parent('a').attr('href', newUrl);
    };
    newImg.src = newUrl;
    return false;
});

function t() {
    uploader.getNewUpToken();
}